﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SachOnlineLibrary.BLL;
using System.Data;
using System.Web.UI.DataVisualization.Charting;
public partial class WebFormThongKe : System.Web.UI.Page
{
    ThongKeBLL lib = new ThongKeBLL();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            AnThongBao();
        }
    }

    private void Gridview_Chart_Load(DataTable dt, Series chartseries)
    {
        chartseries.XValueMember = dt.Columns[0].ColumnName;
        chartseries.YValueMembers = dt.Columns[1].ColumnName;
        chartThongKe.Series.Add(chartseries);
        chartThongKe.Legends[0].Enabled = false;
        if (chartseries.ChartType == SeriesChartType.Pie)
        {
            chartThongKe.Series[0]["PieLabelStyle"] = "Disabled";
            chartThongKe.Width = Unit.Pixel(400);
            chartThongKe.Legends[0].Enabled = true;
        }
        gdvThongKe.DataSource = dt;
        gdvThongKe.DataBind();
        chartThongKe.DataSource = dt;
        chartThongKe.DataBind();
    }

    protected void btnXemThongKe_Click(object sender, EventArgs e)
    {
        #region laythoigian
        if (string.IsNullOrEmpty(txtMonth.Text))
        {
            HienThongBao("Vui lòng chọn thời điểm thống kê.");
            return;
        }

        DateTime date;
        try
        {
            string[] arr = txtMonth.Text.Split('/');
            string strDate = arr[1] + "/" + arr[0] + "/01";
            date = Convert.ToDateTime(strDate);
        }
        catch (Exception)
        {
            HienThongBao("Thời điểm thống kê không đúng định dạng");
            return;
        }
        AnThongBao();
        #endregion
        #region thongketongquat
        lblSachNhat.Text = lib.SachMuaNhieuNhat(date);
        lblLoaiNhat.Text = lib.LoaiMuaNhieuNhat(date);
        lblKhachHangNhat.Text = lib.KhachHangNhieuNhat(date);
        lblTongDoanThu.Text = lib.TongDoanhThu(date).ToString();
        lblTongSoLuong.Text = lib.TongSoLuong(date).ToString();
        #endregion
        switch (ddlType.SelectedIndex)
        {
            #region thongketheosach
            case 0:
                {
                    DataTable dt = lib.LaySoLieuThongKe(ddlType.SelectedIndex, date);
                    if (dt != null && dt.Rows.Count>0)
                    {
                        Series chartseries = new Series("Default");
                        chartseries.ChartType = SeriesChartType.Column;
                        Gridview_Chart_Load(dt, chartseries);
                        lblTua.Text = "5 TỰA SÁCH BÁN CHẠY NHẤT";
                    }
                    else
                    {
                        HienThongBao("Không có số liệu");
                        lblTua.Text = "";
                    }
                    break;
                }
            #endregion
            #region thongketheoloai
            case 1:
                {
                    DataTable dt = lib.LaySoLieuThongKe(ddlType.SelectedIndex, date);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        Series chartseries = new Series("Default");
                        chartseries.ChartType = SeriesChartType.Column;
                        Gridview_Chart_Load(dt, chartseries);
                        lblTua.Text = "SỨC MUA TRONG THÁNG THEO LOẠI SÁCH";
                    }
                    else
                    {
                        HienThongBao("Không có số liệu");
                        lblTua.Text = "";
                    }
                    break;
                }
            #endregion
            #region thongketheokhachhang
            case 2:
                {
                    DataTable dt = lib.LaySoLieuThongKe(ddlType.SelectedIndex, date);
                    if (dt != null)
                    {
                        Series chartseries = new Series("Quat");
                        chartseries.ChartType = SeriesChartType.Pie;
                        Gridview_Chart_Load(dt, chartseries);
                        lblTua.Text = "THỊ PHẦN KHÁCH HÀNG";
                    }
                    else
                    {
                        HienThongBao("Không có số liệu");
                        lblTua.Text = "";
                    }
                    break;
                }
            #endregion
            case 3:
                {
                    DataTable dt = lib.LaySoLieuThongKe(ddlType.SelectedIndex, date);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        Series chartseries = new Series("Default");
                        chartseries.ChartType = SeriesChartType.Line;
                        Gridview_Chart_Load(dt, chartseries);
                        lblTua.Text = "DOANH THU TRONG 5 THÁNG GẦN NHẤT";
                    }
                    else
                    {
                        HienThongBao("Không có số liệu");
                        lblTua.Text = "";
                    }
                    break;
                }
        }
    }

    private void HienThongBao(string mesage)
    {
        lblMsg.Text = mesage;
        lblMsg.Visible = true;
    }

    private void AnThongBao()
    {
        lblMsg.Text = string.Empty;
        lblMsg.Visible = false;
    }
}